import '@/utils/request'
import service from '@/utils/request'
// import qs from 'qs'
const { httpGet, httpPost } = service
import { selectDataClient } from '@/utils/common'

// 加工验收
const request = {
    // 获取加工验收列表页数据
    getProcessCheck (params) {
        return httpPost({
            url: '/materialsettle/processingAcceptance/listByEntity',
            params
        })
    },
    // 新增页加工验收的保存
    saveProcessingAcceptanceAdd (params) {
        return httpPost({
            url: '/materialsettle/processingAcceptance/create',
            params
        })
    },

    //获取基本信息表单数据
    getbasicInfo (id) {
        return httpGet({
            url: '/materialsettle/processingAcceptance/findById',
            params: {
                id
            }
        })
    },

    // 基本信息修改后保存
    basicInfoSave (params) {
        return httpPost({
            url: '/materialsettle/processingAcceptance/update',
            params
        })
    },
    // 获取验收明细-加工费表格的数据
    getProcessingFeeData (id) {
        return httpGet({
            url: '/materialsettle/processingAcceptance/getProcessCostListById',
            params: {
                id
            }
        })
    },
    // 保存验收明细-加工费表格的数据
    saveProcessingFeeData (params) {
        return httpPost({
            url: '/materialsettle/processingAcceptance/updateProcessCostList',
            params
        })
    },
    // 获取验收明细-成品明细表格的数据
    getFinishedProductData (id) {
        return httpGet({
            url: '/materialsettle/processingAcceptance/getFinishedGoodsListById',
            params: {
                id
            }
        })
    },
    // 保存验收明细-成品明细表格的数据
    saveFinishedProductData (params) {
        return httpPost({
            url: '/materialsettle/processingAcceptance/updateFinishedGoodsList',
            params
        })
    },
    // 获取验收明细-原物资表格的数据
    getRawMaterialsData (id) {
        return httpGet({
            url: '/materialsettle/processingAcceptance/getMaterialsListById',
            params: {
                id
            }
        })
    },
    // 保存验收明细-原物资表格的数据
    saveRawMaterialsData (params) {
        return httpPost({
            url: '/materialsettle/processingAcceptance/updateMaterialsList',
            params
        })
    },
    // 获取服务费用表格的数据
    getServeList (id) {
        return httpGet({
            url: '/materialsettle/processingAcceptance/getServiceFeeListById',
            params: {
                id
            }
        })
    },

    // 保存服务费用表格的数据
    saveServiceFeeData (params) {
        return httpPost({
            url: '/materialsettle/processingAcceptance/updateServiceFeeList',
            params
        })
    },

    // 加工验收删除基本信息
    basicInfoDelete (id) {
        return httpGet({
            url: '/materialsettle/processingAcceptance/delete',
            params: {
                id
            }
        })
    },

    // 当点击加工单位后面的选择源单时 -------------  接口杨程还未写好----
    selectSource (params, data) {
        return selectDataClient({
            SelectServiceToken: '/material/processingReceipt/listProcessingReceiptForSelect', // 客户端对应方法名
            IsSingleMode: false, // 是否单选 true 单选 false 多选
            SelectedIDs: data, // 已选中id(注意：是上一次已选中的id，不是要传的参数，如果第一次选，则传[]) // 这个是客户端给的,没有则为空
            InitParamsStr: JSON.stringify(params),    // 接口参数(name为模拟参数)
            Title: '选择源单' // 标题
        })

        // return httpGet({
        //     url: '/material/processingReceipt/listProcessingReceiptForSelect',
        //     params
        // })
    },
    // 物资验收-服务费用:选择合同
    getContract (orgId, contracted) {
        return  selectDataClient({
            SelectServiceToken: '/subcontract/thirdParty/getMachiningAcceptance', // 客户端对应方法名
            IsSingleMode: true, // 是否单选 true 单选 false 多选
            SelectedIDs: [JSON.stringify(contracted)], // 已选中id(注意：是上一次已选中的id，不是要传的参数，如果第一次选，则传[]) // 这个是客户端给的,没有则为空
            InitParamsStr: JSON.stringify(orgId),    // 接口参数(name为模拟参数)
            Title: '选择合同' // 标题
        }).then(res => {
            return res[0]
        })
    },
    // 根据合同获取币种/税率等
    getcontractbasicInfo (billId) {
        return httpGet({
            url: '/subcontract/machiningApply/getInfo',
            params: {
                billId
            }
        })
    },

    // 验收人员,选择当前机构人员名称
    institutionalStaff (data) {
        return selectDataClient({
            SelectServiceToken: '/hr/user/getUserUnderOrgPage', // 客户端对应方法名
            IsSingleMode: true, // 是否单选 true 单选 false 多选
            SelectedIDs: [], // 已选中id(注意：是上一次已选中的id，不是要传的参数，如果第一次选，则传[]) // 这个是客户端给的,没有则为空
            InitParamsStr: JSON.stringify(data),    // 接口参数(name为模拟参数)
            Title: '选择当前机构人员' // 标题
        })
    },

    // 选择库存
    selectStock (params) {
        return selectDataClient({
            SelectServiceToken: '/material/stock/listUsableInventoryByUnitIdForSelect', // 客户端对应方法名
            IsSingleMode: false, // 是否单选 true 单选 false 多选
            SelectedIDs: [], // 已选中id(注意：是上一次已选中的id，不是要传的参数，如果第一次选，则传[]) // 这个是客户端给的,没有则为空
            InitParamsStr: JSON.stringify(params),    // 接口参数(name为模拟参数)
            Title: '选择库存' // 标题
        })
        // return httpGet({
        //     url: '/material/stock/listUsableInventoryByUnitIdForSelect',
        //     params
        // })
    },
    // 如果是砼加工,选择加工单位后,需根据选择的成品明细带出原物资的数据
    rawMaterialsFn (dtlIds) {
        return httpPost({
            url: '/material/processingReceipt/listRawMaterialsForAcceptance',
            dtlIds
        })
    },
    // 生成uuid
    getUuid () {
        return httpGet({
            url: '/uid/builder?num=1',
            headers: {
                'Content-Type': 'application/x-www-form-urlencoded'
            }
        }).then(res =>{
            return res[0]
        })
    },

    // 加工验收冲红单
    redSingle (billId) {
        return httpGet({
            url: '/materialsettle/processingAcceptance/initRedBill',
            params: {
                billId
            }
        })
    },
    // 已经做了结算的物资验收数据,不能再冲红单;
    // 月结后,月结区间内的验收单据不能冲红单
    isRedSingleFn (billId) {
        return httpGet({
            url: '/materialsettle/processingAcceptance/canBeWriteOff',
            params: {
                billId
            }
        })
    }

}
export default request